// type Person = {
//   name: string
//   age: number
// }

// let p: Person = {
//   name: '老韩',
//   age: 18
// }
// // & 交叉类型 可以实现类似继承的效果
// type Student = Person & {
//   sleep: boolean
//   study: boolean
// }

// let stu: Student = {
//   name: '小韩',
//   age: 8,
//   sleep: false,
//   study: true
// }

// let stu1: Student = {
//   name: '小小韩',
//   age: 2,
//   sleep: true,
//   study: true
// }

// // 对比interface  和 type

// // interface Animal {
// //   name: string
// // }

// // interface Animal {
// //   age: number
// //   // 同名属性不能换类型
// //   // name: boolean
// // }
// // type不能重复声明
// type Animal = {
//   name: string
//   age: number
// }

// let cat: Animal = {
//   name: '猫',
//   age: 99
// }

// type Data = {
//   title: string
//   content: string
// }

// type ResData = {
//   code: number
//   msg: string
//   data: Data
// }

// let res: ResData = {
//   code: 200,
//   msg: 'success',
//   data: {
//     title: '标题',
//     content: '内容'
//   }
// }